﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;

namespace WindowsFormsApplication2
{
    class clCsv
    {
        StreamWriter sw = new StreamWriter(@SalvarCsv(), true);

        public void CriarCsv(int linha, string texto)
        {
            try
            {
                //para adicionar as linas e colunas
                if (linha == 1)
                {        
            
                    sw.Write(texto);
                    sw.Write(";");
                }
                else
                {
                    sw.WriteLine("");                  
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro em popular o CSV: " + ex.Message);
            }

        }


        static private string SalvarCsv()
        {
            try
            {
                //rotina para salvar o arquivo
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter = "CSV files (*.csv)|*.csv";
                saveFileDialog.FilterIndex = 0;
                saveFileDialog.RestoreDirectory = true;
                saveFileDialog.CreatePrompt = true;
                saveFileDialog.Title = "Export CSV File To";

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    string a = saveFileDialog.FileName;
                    MessageBox.Show("O arquivo CSV foi criado com sucesso. Você pode encontrá-lo em : " + saveFileDialog.FileName);
                    return (a);
                }

            }

            catch (Exception ex)
            {
                MessageBox.Show("Erro : " + ex.Message);
            }

            return ("");
        }

        public void FecharCsv()
        {
            sw.Close();
        }

        public string CriarHeader(int contador)
        {
            string aux;

            switch (contador)
            {
                case 1:
                    aux = "Tipo Registro";
                    break;
                case 2:
                    aux = "Controle Sequencial de Gravacao";
                    break;
                case 3:
                    aux = "Data Geracao Arquivo";
                    break;
                case 4:
                    aux = "Identificacao Empresa Operadora";
                    break;
                case 5:
                    aux = "UF Empresa Operadora";
                    break;
                case 6:
                    aux = "Codigo Cliente";
                    break;
                case 7:
                    aux = "Nome Cliente";
                    break;
                case 8:
                    aux = "CGC Cliente";
                    break;
                case 9:
                    aux = "Identificador Conta Unica";
                    break;
                case 10:
                    aux = "Data Vencimento";
                    break;
                case 11:
                    aux = "Data Emissao";
                    break;
                case 12:
                    aux = "NRC";
                    break;
                case 13:
                    aux = "CNL Recurso";
                    break;
                case 14:
                    aux = "Nome Localidade";
                    break;
                case 15:
                    aux = "DDD";
                    break;
                case 16:
                    aux = "Numero Telefone";
                    break;
                case 17:
                    aux = "Tipo Servico";
                    break;
                case 18:
                    aux = "Descricao Tipo Servico";
                    break;
                case 19:
                    aux = "Caracteristica Recurso";
                    break;
                case 20:
                    aux = "Degrau Recurso";
                    break;
                case 21:
                    aux = "Velocidade Recurso";
                    break;
                case 22:
                    aux = "Unidade Velocidade Rec";
                    break;
                case 23:
                    aux = "Inicio Periodo Assinatura";
                    break;
                case 24:
                    aux = "Fim Periodo Assinatura";
                    break;
                case 25:
                    aux = "Inicio Servico Medido";
                    break;
                case 26:
                    aux = "Fim Servico Medido";
                    break;
                case 27:
                    aux = "Unidade Consumo";
                    break;
                case 28:
                    aux = "Qtde Consumo";
                    break;
                case 29:
                    aux = "Sinal Consumo";
                    break;
                case 30:
                    aux = "Valor Consumo";
                    break;
                case 31:
                    aux = "Sinal Assinatura";
                    break;
                case 32:
                    aux = "Valor Assinatura";
                    break;
                case 33:
                    aux = "Aliquota Percentual";
                    break;
                case 34:
                    aux = "Sinal ICMS";
                    break;
                case 35:
                    aux = "Valor ICMS";
                    break;
                case 36:
                    aux = "Sinal Valor Total Impostos";
                    break;
                case 37:
                    aux = "Valor Total Impostos";
                    break;
                case 38:
                    aux = "Numero Nota Fiscal";
                    break;
                case 39:
                    aux = "Sinal Valor Conta";
                    break;
                case 40:
                    aux = "Valor Conta";
                    break;
                case 41:
                    aux = "CNL Ponta A";
                    break;
                case 42:
                    aux = "Nome Localidade Ponta A";
                    break;
                case 43:
                    aux = "UF Localidade Ponta A";
                    break;
                case 44:
                    aux = "Endereco Ponta A";
                    break;
                case 45:
                    aux = "Numero Endereco Ponta A";
                    break;
                case 46:
                    aux = "Complemento Ponta A";
                    break;
                case 47:
                    aux = "Bairro Ponta A";
                    break;
                case 48:
                    aux = "CNL Ponta B";
                    break;
                case 49:
                    aux = "Nome Localidade Ponta B";
                    break;
                case 50:
                    aux = "UF Localidade Ponta B";
                    break;
                case 51:
                    aux = "Endereco Ponta B";
                    break;
                case 52:
                    aux = "Numero Endereco Ponta B";
                    break;
                case 53:
                    aux = "Complemento Ponta B";
                    break;
                case 54:
                    aux = "Bairro Ponta B";
                    break;
                case 55:
                    aux = "Data Ligacao";
                    break;
                case 56:
                    aux = "CNL Chamada";
                    break;
                case 57:
                    aux = "Nome Localidade Chamada";
                    break;
                case 58:
                    aux = "UF Telefone";
                    break;
                case 59:
                    aux = "Cod Nacional/Internacional";
                    break;
                case 60:
                    aux = "Cod Operadora";
                    break;
                case 61:
                    aux = "Descricao Operadora";
                    break;
                case 62:
                    aux = "Cod Pais";
                    break;
                case 63:
                    aux = "Area/DDD";
                    break;
                case 64:
                    aux = "Numero Telefone Chamado";
                    break;
                case 65:
                    aux = "Conjugado Numero Chamado";
                    break;
                case 66:
                    aux = "Duracao Ligacao";
                    break;
                case 67:
                    aux = "Categoria";
                    break;
                case 68:
                    aux = "Descricao Categoria";
                    break;
                case 69:
                    aux = "Horario da Ligacao";
                    break;
                case 70:
                    aux = "TC";
                    break;
                case 71:
                    aux = "Grupo Horario Tarifario";
                    break;
                case 72:
                    aux = "Descricao Horario Tarif";
                    break;
                case 73:
                    aux = "Degrau Ligacao";
                    break;
                case 74:
                    aux = "Sinal Valor Ligacao";
                    break;
                case 75:
                    aux = "Aliquota ICMS";
                    break;
                case 76:
                    aux = "Valor Ligacao Impostos";
                    break;
                case 77:
                    aux = "Classe Servico";
                    break;
                case 78:
                    aux = "Data Servico";
                    break;
                case 79:
                    aux = "Grupo Categoria";
                    break;
                case 80:
                    aux = "Valor Ligacao";
                    break;
                case 81:
                    aux = "Categoria";
                    break;
                case 82:
                    aux = "Descricao Grupo Categoria";
                    break;
                case 83:
                    aux = "Base Calculo Desconto";
                    break;
                case 84:
                    aux = "Percentual Desconto";
                    break;
                case 85:
                    aux = "Data Inicio Acerto";
                    break;
                case 86:
                    aux = "Hora Inicio Acerto";
                    break;
                case 87:
                    aux = "Data Fim Acerto";
                    break;
                case 88:
                    aux = "Hora Fim Acerto";
                    break;
                case 89:
                    aux = "Qtde Registros";
                    break;
                case 90:
                    aux = "Qtde Linhas Telefonicas";
                    break;
                case 91:
                    aux = "Sinal Total";
                    break;
                case 92:
                    aux = "Valor Total";
                    break;
                /* case 93:
                         aux = "Filler";
                         break; */
                default:
                    aux = "";
                    break;


            }
            return aux;
        }

     }
}
